package com.boco.modules.fdoc.dao;

import java.util.List;

import com.boco.common.annotation.MyBatisDao;
import com.boco.common.persistence.CrudDao;
import com.boco.modules.fdoc.model.FamdoctorEntity;
import com.boco.modules.fdoc.model.QueryResidentEntity;
import com.boco.modules.fdoc.model.ResidentEntity;
import com.boco.modules.fdoc.model.UserDocSignEntity;
import com.boco.modules.fdoc.vo.QueryResidentVo;
import com.boco.modules.fdoc.vo.ResidentVo;

@MyBatisDao
public interface ResidentDao extends CrudDao<ResidentEntity>{
	/**
	 * 通过身份证号获取居民详细信息
	 * @param idCard
	 * @return
	 */
	public ResidentVo getByIdCard(String idCard);
	/**
	 * 通过身份证号获取户主信息
	 * @param idCard
	 * @return
	 */
	public ResidentVo getMasterByIdCard(String idCard);
	/**
	 * 获取户口本中成员信息
	 * @param id  户主ID
	 * @return
	 */
	public List<ResidentVo> getResidenceMember(String idCard);
	
	/**
	 * getResidentInfoList: 根据分页信息获取居民签约信息
	 * @param entity  分页实体
	 * @return  返回当前分页信息
	 */

	public List<QueryResidentVo> getResidentInfoList(ResidentEntity entity);
	/**
	 * 通过身份证查看当前家庭所有成员签约情况
	 * @param idCard
	 * @return
	 */
	public List<ResidentVo> getAllResidentSignSituation(String idCard);
	/**
	 * 获取家庭成员详情
	 * @param idCard
	 * @return
	 */
	public ResidentVo getResidentDetail(String idCard);

	public List<QueryResidentEntity> getResidentInfoList(QueryResidentEntity entity);
	
	/**
	 * getResidentNosigInfoList: 根据分页信息获取没有签约的居民信息
	 * @param entity  分页实体
	 * @return  返回当前分页信息
	 */
	public List<QueryResidentEntity> getResidentNosigInfoList(QueryResidentEntity entity);
	
	/**
	 * getResidentSigninfo: 根据传入的身份证号码，获取户主信息及其子成员的签约信息
	 * 工签约调用
	 * @param idCard  身份证号码
	 * @return
	 */
	public List<ResidentVo> getResidentSigninfo(String idCard);
	
	public int  remResisingInfo(UserDocSignEntity userDocSignEntity);
	
	public List<UserDocSignEntity> getSingInfobyResiIdCard(UserDocSignEntity userDocSignEntity);
	
	
	public List<FamdoctorEntity> getAllFamdoctorInfo();

}
